import os
import cv2
import numpy as np

img = cv2.imread(os.path.join('../data', 'zcr.jpg'))
print(img.shape)
img = cv2.resize(img, (500, 500))
# 采用canny边缘检测提取算法
# 80 下限低阈值，低于当前阈值的话 就不被视为边缘
# 200 高阈值  边缘像素的上限值
img_can = cv2.Canny(img, 60, 200)
# 膨胀 让线条加粗
# 膨胀，是对边缘图像进行膨胀操作， 形态学
#  np.ones 3*3 是结构元素（卷积核），决定膨胀范围
img_edge = cv2.dilate(img_can, np.ones((3, 3), dtype=np.int8))
# 腐蚀 会让线条变细
# 去除边缘线上的毛刺和 噪点，还原边缘的基本形态
# 使用规则： 先膨胀 后腐蚀 组合起来叫，开运算
img_ede=cv2.erode(img_edge,np.ones((2,2), dtype=np.int8))

cv2.imshow('img', img)
cv2.imshow('img_can', img_can)
cv2.imshow('img_edge', img_edge)
cv2.imshow('img_ede', img_ede)

cv2.waitKey(0)
